[C] Decompositor de números em fatores primos
Publicado por Enzo de Brito Ferber 27/06/2007
[ Hits: 10.386 ]
Homepage: http://www.maximasonorizacao.com.br
Como o nome já diz, um programa escrito em C, que decompõe um número qualquer em fatores primos e exibe estes números para o usuário.
/* * Programa: Decompositor de numeros * Arquivo : decom_primes.c * Autor : Enzo Ferber 'Slackware_10' */ #include <stdio.h> #include <stdlib.h> #define TRUE 1 #define FALSE 0 int *lista_primos(int size){ int prime, i=0, a, b; int *list = (int*)malloc(size*sizeof(int)); if(!list){ printf("[-] Erro ao alocar memoria.\n"); printf("[-] Abortando...\n"); exit(0); } for(a=2;a<size;a++){ prime = FALSE; for(b=1;b<=a;b++){ if(b == a) prime = TRUE; if(((a%b)==0) && (b != 1)) break; } if(prime) list[i] = a; if(prime) i += 1; } list[i] = 0x0; return list; } int *fatores_primos(int num){ int *lista = lista_primos(num+1); int *fatores = (int*)malloc(num*sizeof(int)); register int i; int div_atual, fat_atual, list_ref, ref; ref = num; fat_atual = 0; list_ref = 0; div_atual = lista[list_ref]; for(i=0; i<num; i++){ if(ref == 1){ fatores[fat_atual] = 1; break; } if((ref % div_atual) == 0){ ref = ref / div_atual; fatores[fat_atual] = div_atual; fat_atual++; } if((ref % div_atual) != 0) div_atual = lista[++list_ref]; } free(lista); fatores[fat_atual+1] = 0x0; return fatores; } int main(int argc, char *argv[]){ int *list; if(argc != 2){ printf("[-] Uso: %s <numero_a_fatorar>\n", argv[0]); printf("[-] Abortando...\n"); exit(0); } list = fatores_primos(atoi(argv[1])); while(*list) printf("%d\n", *list++); return 0; }
Função para validação de datas
Crud em C++ orientado a objetos com banco de dados MySQL
Também enche a memória, porém desta vez com processos
Converçor de Decimal para Binario
Nenhum comentário foi encontrado.
Automatizando digitação de códigos 2FA no browser
Resolver problemas de Internet
Como compartilhar a tela do Ubuntu com uma Smart TV (LG, Samsung, etc.)
Como converter imagens PNG/JPEG para SVG em linha de comando
Fez porcaria no teu repositório Git? Aprenda a restaurar uma versão anterior do seu código!
Restaurando Fontes de Download do Hydra no Linux
Atualizando "na marra" o YT-DLP quando começa a dar erro de downloads
Como instalar o WPS com interface e corretor ortográfico em PT-BR no Arch Linux
Inicializaçao lenta (alguns processos rodando) Debian 11 Bullseye [RES... (2)
Erro na atualização dos pacotes (6)